/**
 * jQuery EasyUI 1.4.3
 *
 * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
 * To use it on other terms please contact us at info@jeasyui.com
 *
 */
(function ($) {
    function _1(_2, _3) {
        var _4 = $.data(_2, "form").options;
        $.extend(_4, _3 || {});
        var _5 = $.extend({}, _4.queryParams);
        if (_4.onSubmit.call(_2, _5) == false) {
            return;
        }
        $(_2).find(".textbox-text:focus").blur();
        var _6 = "easyui_frame_" + (new Date().getTime());
        var _7 = $("<iframe id=" + _6 + " name=" + _6 + "></iframe>").appendTo("body");
        _7.attr("src", window.ActiveXObject ? "javascript:false" : "about:blank");
        _7.css({position: "absolute", top: -1000, left: -1000});
        _7.bind("load", cb);
        _8(_5);
        function _8(_9) {
            var _a = $(_2);
            if (_4.url) {
                _a.attr("action", _4.url);
            }
            var t = _a.attr("target"), a = _a.attr("action");
            _a.attr("target", _6);
            var _b = $();
            try {
                for (var n in _9) {
                    var _c = $("<input type=\"hidden\" name=\"" + n + "\">").val(_9[n]).appendTo(_a);
                    _b = _b.add(_c);
                }
                _d();
                _a[0].submit();
            }
            finally {
                _a.attr("action", a);
                t ? _a.attr("target", t) : _a.removeAttr("target");
                _b.remove();
            }
        };
        function _d() {
            var f = $("#" + _6);
            if (!f.length) {
                return;
            }
            try {
                var s = f.contents()[0].readyState;
                if (s && s.toLowerCase() == "uninitialized") {
                    setTimeout(_d, 100);
                }
            }
            catch (e) {
                cb();
            }
        };
        var _e = 10;

        function cb() {
            var f = $("#" + _6);
            if (!f.length) {
                return;
            }
            f.unbind();
            var _f = "";
            try {
                var _10 = f.contents().find("body");
                _f = _10.html();
                if (_f == "") {
                    if (--_e) {
                        setTimeout(cb, 100);
                        return;
                    }
                }
                var ta = _10.find(">textarea");
                if (ta.length) {
                    _f = ta.val();
                } else {
                    var pre = _10.find(">pre");
                    if (pre.length) {
                        _f = pre.html();
                    }
                }
            }
            catch (e) {
            }
            _4.success(_f);
            setTimeout(function () {
                f.unbind();
                f.remove();
            }, 100);
        };
    };
    function _11(_12, _13) {
        var _14 = $.data(_12, "form").options;
        if (typeof _13 == "string") {
            var _15 = {};
            if (_14.onBeforeLoad.call(_12, _15) == false) {
                return;
            }
            $.ajax({
                url: _13, data: _15, dataType: "json", success: function (_16) {
                    _17(_16);
                }, error: function () {
                    _14.onLoadError.apply(_12, arguments);
                }
            });
        } else {
            _17(_13);
        }
        function _17(_18) {
            var _19 = $(_12);
            for (var _1a in _18) {
                var val = _18[_1a];
                if (!_1b(_1a, val)) {
                    if (!_1c(_1a, val)) {
                        _19.find("input[name=\"" + _1a + "\"]").val(val);
                        _19.find("textarea[name=\"" + _1a + "\"]").val(val);
                        _19.find("select[name=\"" + _1a + "\"]").val(val);
                    }
                }
            }
            _14.onLoadSuccess.call(_12, _18);
            _19.form("validate");
        };
        function _1b(_1d, val) {
            var cc = $(_12).find("[switchbuttonName=\"" + _1d + "\"]");
            if (cc.length) {
                cc.switchbutton("uncheck");
                cc.each(function () {
                    if (_1e($(this).switchbutton("options").value, val)) {
                        $(this).switchbutton("check");
                    }
                });
                return true;
            }
            cc = $(_12).find("input[name=\"" + _1d + "\"][type=radio], input[name=\"" + _1d + "\"][type=checkbox]");
            if (cc.length) {
                cc._propAttr("checked", false);
                cc.each(function () {
                    if (_1e($(this).val(), val)) {
                        $(this)._propAttr("checked", true);
                    }
                });
                return true;
            }
            return false;
        };
        function _1e(v, val) {
            if (v == String(val) || $.inArray(v, $.isArray(val) ? val : [val]) >= 0) {
                return true;
            } else {
                return false;
            }
        };
        function _1c(_1f, val) {
            var _20 = $(_12).find("[textboxName=\"" + _1f + "\"],[sliderName=\"" + _1f + "\"]");
            if (_20.length) {
                for (var i = 0; i < _14.fieldTypes.length; i++) {
                    var _21 = _14.fieldTypes[i];
                    var _22 = _20.data(_21);
                    if (_22) {
                        if (_22.options.multiple || _22.options.range) {
                            _20[_21]("setValues", val);
                        } else {
                            _20[_21]("setValue", val);
                        }
                        return true;
                    }
                }
            }
            return false;
        };
    };
    function _23(_24) {
        $("input,select,textarea", _24).each(function () {
            var t = this.type, tag = this.tagName.toLowerCase();
            if (t == "text" || t == "hidden" || t == "password" || tag == "textarea") {
                this.value = "";
            } else {
                if (t == "file") {
                    var _25 = $(this);
                    if (!_25.hasClass("textbox-value")) {
                        var _26 = _25.clone().val("");
                        _26.insertAfter(_25);
                        if (_25.data("validatebox")) {
                            _25.validatebox("destroy");
                            _26.validatebox();
                        } else {
                            _25.remove();
                        }
                    }
                } else {
                    if (t == "checkbox" || t == "radio") {
                        this.checked = false;
                    } else {
                        if (tag == "select") {
                            this.selectedIndex = -1;
                        }
                    }
                }
            }
        });
        var _27 = $(_24);
        var _28 = $.data(_24, "form").options;
        for (var i = _28.fieldTypes.length - 1; i >= 0; i--) {
            var _29 = _28.fieldTypes[i];
            var _2a = _27.find("." + _29 + "-f");
            if (_2a.length && _2a[_29]) {
                _2a[_29]("clear");
            }
        }
        _27.form("validate");
    };
    function _2b(_2c) {
        _2c.reset();
        var _2d = $(_2c);
        var _2e = $.data(_2c, "form").options;
        for (var i = _2e.fieldTypes.length - 1; i >= 0; i--) {
            var _2f = _2e.fieldTypes[i];
            var _30 = _2d.find("." + _2f + "-f");
            if (_30.length && _30[_2f]) {
                _30[_2f]("reset");
            }
        }
        _2d.form("validate");
    };
    function _31(_32) {
        var _33 = $.data(_32, "form").options;
        $(_32).unbind(".form");
        if (_33.ajax) {
            $(_32).bind("submit.form", function () {
                setTimeout(function () {
                    _1(_32, _33);
                }, 0);
                return false;
            });
        }
        $(_32).bind("_change.form", function (e, t) {
            _33.onChange.call(this, t);
        }).bind("change.form", function (e) {
            var t = e.target;
            if (!$(t).hasClass("textbox-text")) {
                _33.onChange.call(this, t);
            }
        });
        _34(_32, _33.novalidate);
    };
    function _35(_36, _37) {
        _37 = _37 || {};
        var _38 = $.data(_36, "form");
        if (_38) {
            $.extend(_38.options, _37);
        } else {
            $.data(_36, "form", {options: $.extend({}, $.fn.form.defaults, $.fn.form.parseOptions(_36), _37)});
        }
    };
    function _39(_3a) {
        if ($.fn.validatebox) {
            var t = $(_3a);
            t.find(".validatebox-text:not(:disabled)").validatebox("validate");
            var _3b = t.find(".validatebox-invalid");
            _3b.filter(":not(:disabled):first").focus();
            return _3b.length == 0;
        }
        return true;
    };
    function _34(_3c, _3d) {
        var _3e = $.data(_3c, "form").options;
        _3e.novalidate = _3d;
        $(_3c).find(".validatebox-text:not(:disabled)").validatebox(_3d ? "disableValidation" : "enableValidation");
    };
    $.fn.form = function (_3f, _40) {
        if (typeof _3f == "string") {
            this.each(function () {
                _35(this);
            });
            return $.fn.form.methods[_3f](this, _40);
        }
        return this.each(function () {
            _35(this, _3f);
            _31(this);
        });
    };
    $.fn.form.methods = {
        options: function (jq) {
            return $.data(jq[0], "form").options;
        }, submit: function (jq, _41) {
            return jq.each(function () {
                _1(this, _41);
            });
        }, load: function (jq, _42) {
            return jq.each(function () {
                _11(this, _42);
            });
        }, clear: function (jq) {
            return jq.each(function () {
                _23(this);
            });
        }, reset: function (jq) {
            return jq.each(function () {
                _2b(this);
            });
        }, validate: function (jq) {
            return _39(jq[0]);
        }, disableValidation: function (jq) {
            return jq.each(function () {
                _34(this, true);
            });
        }, enableValidation: function (jq) {
            return jq.each(function () {
                _34(this, false);
            });
        }
    };
    $.fn.form.parseOptions = function (_43) {
        var t = $(_43);
        return $.extend({}, $.parser.parseOptions(_43, [{ajax: "boolean"}]), {url: (t.attr("action") ? t.attr("action") : undefined)});
    };
    $.fn.form.defaults = {
        fieldTypes: ["combobox", "combotree", "combogrid", "datetimebox", "datebox", "combo", "datetimespinner", "timespinner", "numberspinner", "spinner", "slider", "searchbox", "numberbox", "textbox", "switchbutton"],
        novalidate: false,
        ajax: true,
        url: null,
        queryParams: {},
        onSubmit: function (_44) {
            return $(this).form("validate");
        },
        success: function (_45) {
        },
        onBeforeLoad: function (_46) {
        },
        onLoadSuccess: function (_47) {
        },
        onLoadError: function () {
        },
        onChange: function (_48) {
        }
    };
})(jQuery);

